package com.xiaxiaoge.tutorialmod.items.custom;

import net.minecraft.network.chat.Component;
import net.minecraft.util.RandomSource;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;

/**
 * @author 夏小哥
 * @version 1.0
 * 此处继承Item类
 */
public class EightBallItem extends Item {
    public EightBallItem(Properties properties) {
        super(properties);
    }

    /**
     *  重写use 方法
     * @param level 表示物品被使用时所处的世界（或者称为地图、关卡等）。在这个参数中，你可以获取到当前世界的信息，比如方块、实体等。
     * @param player 表示使用物品的玩家实体。通过这个参数，你可以获取到玩家的信息，比如玩家的位置、手持的物品等。
     * @param hand 表示玩家使用物品时所使用的手，这个参数可以帮助你确定玩家是用主手还是副手使用了物品。
     */
    @Override
    public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand hand) {
        // 如果是主手
        if(!level.isClientSide() && hand == InteractionHand.MAIN_HAND) {
            // 输出一个随机数字
            outPutRandomNumber(player);
            // 增加冷却
            player.getCooldowns().addCooldown(this,20);
        }
        return super.use(level, player, hand);
    }

    /**
     * 输出一个随机数
     * @param player 当前使用者
     */
    private void outPutRandomNumber(Player player){
        player.sendSystemMessage(Component.literal("你的数字是 "+ getRandomNumber()));
    }

    /**
     *   随机生成一个随机数
     */
    private int getRandomNumber(){
        return RandomSource.createNewThreadLocalInstance().nextInt(10);
    }
}
